package com.gs.thunder.service;

import com.gs.thunder.entity.SAIExpert;
import com.gs.thunder.entity.SAIPlan;
import com.gs.thunder.entity.SAIRandom;
import com.gs.thunder.entity.SAISpecial;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: Legolas
 * Date: 2018/1/3 0003
 */
//防雷监督检查子系统
@Service
public interface SAIService {

    //监督检查计划
    void addPlan(SAIPlan plan);
    void updatePlan(SAIPlan plan);
    void deletePlan(Integer id);
    List<SAIPlan> getSAIPlanWithPage(Integer pageNum,Integer pageSize);
    //根据计划名称查询
    List<SAIPlan> getSAIPlanByNameWithPage(String name,Integer pageNum,Integer pageSize);
    //根据计划年份查询
    List<SAIPlan> getSAIPlanByPlanYearWithPage(String planYear,Integer pageNum,Integer pageSize);

    //专项检查行政监督检查记录
    void addAdminSAISpecial(SAISpecial special);
    void updateAdminSAISpecial(SAISpecial special);
    void deleteAdminSAISpecial(Integer id);
    List<SAISpecial> getAdminSAISpecialWithPage(Integer pageNum,Integer pageSize);
    //被检查单位
    List<SAISpecial> getAdminSAISpecialByObjectOrgWithPage(String objectOrg,Integer pageNum,Integer pageSize);

    //随机抽查行政监督记录
    void addAdminSAIRandom(SAIRandom random);
    void updateAdminSAIRandom(SAIRandom random);
    void deleteAdminSAIRandom(SAIRandom random);
    List<SAIRandom> getAdminSAIRandomWithPage(Integer pageNum,Integer pageSize);
    List<SAIRandom> getAdminSAIRandomByObjectOrgWithPage(String objectOrg,Integer pageNum,Integer pageSize);


    //专项检测质量考核
    void addQualityAssessSpecial(SAISpecial special);
    void updateQualityAssessSpecial(SAISpecial special);
    void deleteQualityAssessSpecial(Integer id);
    List<SAISpecial> getQualityAssessSpecialWithPage(Integer pageNum,Integer pageSize);
    //被检查单位
    List<SAISpecial> getQualityAssessSpecialByObjectOrgWithPage(String objectOrg,Integer pageNum,Integer pageSize);


    //随机抽查检测质量考核
    void addQualityAssessRandom(SAIRandom random);
    void updateQualityAssessRandom(SAIRandom random);
    void deleteQualityAssessRandom(SAIRandom random);
    List<SAIRandom> getQualityAssessRandomWithPage(Integer pageNum,Integer pageSize);
    List<SAIRandom> getQualityAssessRandomByObjectOrgWithPage(String objectOrg,Integer pageNum,Integer pageSize);


    //专项检查图审质量监督
    void addPictureQualitySpecial(SAISpecial special);
    void updatePictureQualitySpecial(SAISpecial special);
    void deletePictureQualitySpecial(Integer id);
    List<SAISpecial> getPictureQualitySpecialWithPage(Integer pageNum,Integer pageSize);
    //被检查单位
    List<SAISpecial> getPictureQualitySpecialByObjectOrgWithPage(String objectOrg,Integer pageNum,Integer pageSize);


    //随机抽查图审质量监督
    void addPictureQualityRandom(SAIRandom random);
    void updatePictureQualityRandom(SAIRandom random);
    void deletePictureQualityRandom(SAIRandom random);
    List<SAIRandom> getPictureQualityRandomWithPage(Integer pageNum,Integer pageSize);
    List<SAIRandom> getPictureQualityRandomByObjectOrgWithPage(String objectOrg,Integer pageNum,Integer pageSize);


    //专项检查主体责任单位监督
    void addMainbodyResponsibilitySpecial(SAISpecial special);
    void updateMainbodyResponsibilitySpecial(SAISpecial special);
    void deleteMainbodyResponsibilitySpecial(Integer id);
    List<SAISpecial> getMainbodyResponsibilitySpecialWithPage(Integer pageNum,Integer pageSize);
    //被检查单位
    List<SAISpecial> getMainbodyResponsibilitySpecialByObjectOrgWithPage(String objectOrg,Integer pageNum,Integer pageSize);


    //随机抽查主体责任单位监督
    void addMainbodyResponsibilityRandom(SAIRandom random);
    void updateMainbodyResponsibilityRandom(SAIRandom random);
    void deleteMainbodyResponsibilityRandom(SAIRandom random);
    List<SAIRandom> getMainbodyResponsibilityRandomWithPage(Integer pageNum,Integer pageSize);
    List<SAIRandom> getMainbodyResponsibilityRandomByObjectOrgWithPage(String objectOrg,Integer pageNum,Integer pageSize);



    //专家库信息管理
    void addExpert(SAIExpert expert);
    void updateExpert(SAIExpert expert);
    void deleteExpert(Integer id);
    List<SAIExpert> getExpertWithPage(Integer pageNum,Integer pageSize);
    List<SAIExpert> getExpertByTypeWithPage(String type,Integer pageNum,Integer pageSize);
    List<SAIExpert> getExpertByOrgWithPage(String org,Integer pageNum,Integer pageSize);
    List<SAIExpert> getExpertByNameWithPage(String name,Integer pageNum,Integer pageSize);


}
